package com.example.javabasic.thread.classtwo.future.demo1;

import java.util.function.Consumer;

public class FutureService {
    //提交任务,并执行
    //Consumer  java8中的消费者 函数接口
    public <T> Future<T> submit(final FutureTask<T> task, final Consumer<T> consumer){
        //创建异步future
        AsyncFuture<T> asyncFuture = new AsyncFuture<>();
        //创建线程执行逻辑单元
        new Thread(()->{
            //执行逻辑
            T result = task.call();
            //线程的结果放入异步future中
            asyncFuture.done(result);
            //提交任务
            consumer.accept(result);
        }).start();
        return asyncFuture;
    }
}
